The dissimilarity index was calculated at a block group level. The Future Land Use Layer was used to represent zoning with the field Max Dwelling Units per Acre. We are using this field to define single family zoning. The analysis found there is some correlation between single-family zoning and segregation. There is also a relationship between Max Dwelling Units and segregation over the entire range of Max DU. Lower Max Dwelling Units are associated with more white people, and Higher Max Dwelling Units are associated with more People of Color. The differing ranges of Max DUs per acre across the region makes it difficult to perform the analysis. I couldn’t easily find a way to communicate the info I uncovered to a policy board level audience.
From a technical standpoint, we are looking into:
The segregation measure is a set of dissimilarity indices between racial groups. Between any two groups a measure of dissimilarity is calculated for each block group. More documentation can be found here: https://www.censusscope.org/about_dissimilarity.html
Because the future land use layer and the block groups do not match up geographically, I needed to do an aggregation to get a one to one match between the future land use and the block groups. For this, I found the max, min, and mean maximum du for a block group for all intersecting flu areas.
Then I looked into which aggregation max, min or mean of the max_du had the most correlation with the dissimilarity index; this will help us select which aggregation is the best for further analysis.
## Warning in cor.test.default(flu_dissim$White_Minority_Dissim,
## flu_dissim$mean_max_du, : Cannot compute exact p-value with ties
##
## Spearman's rank correlation rho
##
## data: flu_dissim$White_Minority_Dissim and flu_dissim$mean_max_du
## S = 4149597802, p-value < 2.2e-16
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
## rho
## -0.3531487
The most correlation was observed between the dissimilarity index and the aggregation to the block group by mean, so the rest of the analysis will use the mean max_du_ac by block group from the flu layer.
Let’s analyze the distributions of the mean_max_du and the dissimilarity indices.
## flu_dissim$mean_max_du
## n missing distinct Info Mean Gmd .05 .10
## 2640 0 2034 1 24.05 29.03 0.150 1.565
## .25 .50 .75 .90 .95
## 4.896 12.121 29.624 55.911 73.238
##
## lowest : 0.02500000 0.04000000 0.04375000 0.04878049 0.05000000
## highest: 375.66144000 378.97200000 379.72000000 413.82000000 472.62600000
## flu_dissim$White_Minority_Dissim
## n missing distinct Info Mean Gmd .05 .10
## 2640 0 2637 1 0.0006692 3.779 -6.6119 -4.7278
## .25 .50 .75 .90 .95
## -1.8155 0.7146 2.4032 3.6327 4.4206
##
## lowest : -18.734869 -17.408798 -17.308878 -16.358890 -16.072008
## highest: 7.888457 8.306193 8.374410 8.431756 8.961172
## [1] 0.02222222 9.81000000 23.49858974 41.40000000 63.37666667
## [6] 99.13600000 158.52171429 260.89000000 333.85343333 472.62600000
There are long tails on the max dus. I’m going to cap them at 100. Then create some maps to look at both the max dus and the dissimilarity indices.
flu_dissim<- flu_dissim %>%mutate(mean_max_du_capped=replace(mean_max_du,mean_max_du>100,100))
ggplot(flu_dissim, aes(x=mean_max_du_capped)) + geom_histogram(bins=25)
Now let’s map the range of Max DU per acre.
MAX DU PER ACRE
## Reading layer `dbo.BLOCKGRP2010_NOWATER' from data source
## `MSSQL:server=AWS-PROD-SQL\Sockeye;database=ElmerGeo;trusted_connection=yes'
## using driver `MSSQLSpatial'
## Simple feature collection with 2644 features and 14 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: 1099353 ymin: -97548.53 xmax: 1622631 ymax: 477101.5
## Projected CRS: NAD83 / Washington North (ftUS)